Help

* ircA service

* New features

* Writing plugins

* ircA service manager

© 2000-2002 Digital-W Soft. All rights reserved.


ircA service

ircA service is a simple windows nt service that stays connected to IRC. ircA service imitates a bot that does nothing. It has basic instincts: stays connected to IRC while your computer is logged off, reconnects on diconnection, rejoins channel when kicked or kickbaned, trys to recover the lost nick. Other abilities depend on plugins.

This is a new product for bot writers. It is small, easy to use tool for win2000/XP or higher. All you need is to write your own plugin in any programming language that supports dynamic loading libraries.

Many people in the world write their own plugins. So it is not nesseccary to write them. You can try to find them on the internet.

Related Topics


Preparing ircA service

How to prepare ircA service

First you need to write bot information. Start ircA service manager. Select General node. In the right pane select User info. Click Action meniu item and then Properties. Enter nick, user ID, full name. These are minimum requirements for ircA service.

We recommend you to enable logging. So you must decide how to write logs. Select Log page. Set properties.

Important

Most plugins require logging to database. This factor must influence your choise. How to prepare database for ircA service read here

Next you must set channels. Bot will automaticaly join these channels. Select Channels node in the left pane and in the right pane enter channels.

Your ircA service will not work if you do not specify IRC servers. Select Servers node. Enter new IRC server. Do not forget to set server properties, there you have to enter the address of IRC server.

After these steps you can start ircA service. Click Start, point to Programs, then to ircA. Click on ircA service start.

If bot has no plugins it's not capable to do anything. Plugins are bot abilities. You can find them on www.dw-soft.com or other pages. Many people in the world write them, so you can find them anywhere. After downloading plugin - install it. Many plugins runs automatically, but some plugins you must add yourself. Plugins can require database or have other requirements, so read help about downloaded plugin very carefuly.

ircA service and plugins write errors and notes to Event Viewer. You can find it in Administrative tools.

If you have any questions e-mail us.


Command line syntax

It is possible to set some options or perform commands from the command line. Common command line syntax is described below:

Command | Description
/i | Install ircA service. If it depeneds on other services type each service code name separating them with space (see in the regeditor for code name). Notes Usually it is enought to use the standard service name.
/u | Uninstall ircA service.
/start | Start ircA service.
/stop | Stop ircA service.


History

2.0.0.2 version

  • Some small bug fixes (for WinXP).

2.0.0.1 version

  • Some small bug fixes in console.
  • Added new field in IRCLOGS table. You must update the database.

2.0.0.0 version

  • new ircA service manager (native windows console)
  • new log module (you can write own)
  • improved error processing
  • new ircA service syntax in performs
  • channels can have own performs
  • fixed small bugs
  • improved logging to files
  • service can depend on other services
  • Expanded help

1.0.0.3 version

  • fixed some small bugs in dblog.dll (logging to database)
  • dynamic dll load/unload without stopping ircA service
  • plugins can have settings (procedure Options)

1.0.0.2 version

  • logging to db doesn't require BDE anymore
  • "self word" logging
  • "try next server" option added
  • reconnect occurs after 60 s. on disconnection
  • new function added: IsChanel

1.0.0.1 version

  • full WinXP support
  • asynchronous message sending
  • logging to database
  • expanded plugins

1.0.0.0 version

  • first release


ircA service limitations

General:

Constant | max
Nick | 30
User | 30
Full name | 255
Perform | 1024
Quit message | 255
Log path | 255
Log datasource | 255
Log table | 255
Log user | 255
Log password | 255

Channels:

Constant | max
Channel name | 30
Key | 30
Part message | 255
Perform | 1024

IRC servers:

Constant | max
Name | 255
Server | 255
Type | 100
Password | 20
Description | 1024

Information

If it is not enough for you, just e-mail us. In the next version we will expand these limitations


Troubleshooting

ircA service writes errors and notes to Event viewer. You can find it in Control panel, Administrative tools.

If you will have problems that you will not be able to solve yourself, e-mail us.


Writing plugin

Writing a plugin

Plugins are bot abilities. They must be small and quick.

Plugins can be writen with any programing language, that supports dynamic load libraries (VC++, VB, Delphi and others). If you don't know how to write plugins, try to download written plugins from www.dw-soft.com or try to find them on other pages.

Technical information about plugin writing

The plugin is a simple dll, enclosing four functions, which are discribed by declarations given below. Each time ircA service is started, it loads all plugins (dlls) and calls these functions. After loading a dll ircA service calls the Init function, then the plugin can initialize itself. When ircA service recieves any data from irca server, it calls a RecievedData function and passes the recieved data as parameters. A plugin recieves all information from ircA server. The data is one IRC protocol command. You have to parse it yourself. You can find the specification of this protocol on www.rfc-editor.org.

When stopped ircA service unloads all plugins (dlls). Before unloading it calls the unloading function of every plugin. Then the plugin can end all operations and close the handles.

ircA service has functions for asynchronous data sending and taking bot state information. Here you can find the list of functions.

A plugin can have four functions for communication with service. They are not required.

procedure Init(aHH:THandle);stdcall;

void __stdcall Init(HANDLE aHH)

ircA service calls this function after loading a plugin. You can perform some initial operations in this function. There is no timeout mechanizm for detecting hang of plugins, so you must be careful writing an initialization code. We recommend you not to perform long lasting operations in this function (except connecting to database). Try to use threads if you need these operations.

Variable aHH is ircA service heap handle. You can save it to global variable or simply ignore it and use GetProcessHeap for internal use.

function ReceivedData(addr:DWord;len:DWord;answer:DWord):Boolean;stdcall;

BOOL __stdcall ReceivedData(DWORD addr, DWORD len, DWORD answer)

Main plugin function that receives data from IRC server. Do not process long lasting operations. You can use threads and asynchronous data sending.

Variablies addr and len are data received from IRC server. addr is an address of the first byte of memory block and len is the length of this block. answer is an address of the first byte of the memory block that contains an answer. the answer is limited to 4094 bytes. Do not exceed this limit. It can affect service stability. Return True as a function result if you have define an answer and False if not.

Received data is a native command of IRC client protocol. You can find specification of this protocol on www.rfc-editor.org. Search index is 2812. The answer also must be a correct the native command of IRC client protocol.

For sending data to IRC server asynchronously, service provides special external functions. See more.

procedure Options;stdcall;

void __stdcall Options()

The plugin can have options. Write option code in this function. You can display dialog or collect options in other ways. Options do not affect the plugin, until they are reloaded except you write your own mechanizm to respond to coming changes. This function will be called from service manager, plugin properties, with Options button.

procedure UnloadDll;stdcall;

void __stdcall UnloadDll()

ircA service calls this function before the plugin is unloaded. We strongly recommend not to process long lasting operations except cases when they are really necessary. In some situations, windows cannot give service enought time to finish its job. So this function is time critical. You can take no notice of this comment if you disconnect from database and /or close file handles.

The plugin can have it's own icon. You must include the icon into resource file and link to dll. The icon must have two formats: 32x32 and 16x16. The name of must be "MMC_ICON".

Notes

  • All names are case sensitive so be careful.
  • Plugins can have own and global options. Own options must be under HKLM\SOFTWARE\ircA\Bots\GlobalUniqueIDentifier key. We recommend to generate GlobalUniqueIDentifier with GenGUID.exe or other tool. Global options are saved under HKLM\SOFTWARE\ircA\Bots key.

    Standard keys

    Key | Description
    DB | Connecting to db parameters. They are always equal to database logging properties.


External functions

ircA service exports some functions, which enable plugins work asynchronously and get information about bot state. The example given below shows how you can get these functions:

proc:=GetProcAddress(GetModuleHandle('ircAserv.exe'),'proc_name');

Be careful useing these functions. If you pass wrong parameters, the function will raise an exception and this will affect the stability of ircA service. All function names are case sensitive.

Function list, desclarations and examples

procedure AsyncSend(addr:DWord;len:DWord);stdcall;

void __stdcall AsyncSend(DWORD addr, DWORD len)

The function which sends data to IRC server asynchrnously. Usually the plugin runs a separate thread and uses this function to return the result of the thread.

addr must be the first address of memory block that contains correct native IRC client protocol command. len is length of the memory block. Plugin must free memory block itself. We recomend to create the buffer from heap handle pasted into Init function.

Delphi example

Var
AsyncSend:procedure (addr:DWord;len:DWord);stdcall;
p:Pointer;
s:String;
Begin
AsyncSend:=GetProcAddress(GetModuleHandle('ircAserv.exe'),'AsyncSend');
If @AsyncSend=nil then ; //processerror,exit;
...
s:='PRIVMSG #channel :Hello world'#13#10;
p:=HeapAlloc(HH,$08,Length(s)+1); // HH heap handle, from Init();
If p=nil then ; // process_error, exit;
StrPCopy(PChar(p),s,Length(s));
AsyncSend(DWord(p),Length(s));
If HeapFree(HH,0,p)=False then ; //processerrror, exit;
  ...
End;

function IsChannel(addr:DWord):BOOL;stdcall;

BOOL __stdcall IsChannel(DWORD addr)

This function checks if the string is a channel name or not. This function is useful when you need to determine whether PRIVMSG command is used to say something to channel or to private. addr is the first byte of memory block, that contains a string, which needs to be checked. A string must be null-terminated.

Delphi example

Var
IsChannel:function (addr:DWord):BOOL;stdcall;
s:String;
Begin
IsChannel:=GetProcAddress(GetModuleHandle('ircAserv.exe'),'IsChannel');
If @IsChannel=nil then ; //processerror,exit;
...
s:='#channel'#0;
If IsChannel(Integer(s)) then ; // given string is correct channel name
...
End;

function NickChannels(nick:DWord;Buffer:DWord;BufferLen:DWord):BOOL;stdcall;

BOOL __stdcall NickChannels(DWORD nick, DWORD buffer, DWORD bufferlen)

This function returns the list of channels containing the nick. nick is the first byte of memory block that contains the nick. A string must be null-terminated. buffer is the first byte of memory block, that contains buffer. The buffer is where ircA service will put a list of channels. bufferlen is the length of the buffer. It is recommended to allocate 4096 bytes. Each channel in the buffer is separated by space (#32).

Delphi example

Var
NickChannels:function (nick:DWord;Buffer:DWord;BufferLen:DWord):BOOL;stdcall;
p:Pointer;
s:String;
Begin
NickChannels:=GetProcAddress(GetModuleHandle('ircAserv.exe'),'NickChannels');
If @NickChannels=nil then ; //processerror,exit;
...
s:='nick'#0;
p:=HeapAlloc(HH,$08,4096);
If p=nil then ; // processerror, exit
If NickChannels(DWord(nick),DWord(p),4096)=False then ; // processerror, HeapFree(HH,0,p), exit
SetString(s,PChar(p),4096);
If HeapFree(HH,0,p)=False then ; // processerror,exit
// now s is list of channels, where nick is.
...
End;

function IsNick(nick:DWord;nLen:DWord;channel:DWord;cLen:DWord):BOOL;stdcall;

BOOL __stdcall IsNick(DWORD nick, DWORD nLen, DWORD channel, DWORD cLen)

This function checks if the nick is in the channel. nick is the first byte of memory block, that contains nick. nLen is the length of the nick. channel is the first byte of memory block, that contains channel. cLen is the length of the channel.

Delphi example

Var
IsNick:function (nick:DWord;nLen:DWord;channel:DWord;cLen:DWord):BOOL;stdcall;
p:Pointer;
s:String;
Begin
IsNick:=GetProcAddress(GetModuleHandle('ircAserv.exe'),'IsNick');
If @IsNick=nil then ; //processerror,exit;
...
s:='nick'#0;
s1:='#channel'#0;
If IsNick(DWord(nick),Length(nick),DWord(channel),Length(channel)) then ; // nick in on the channel
...
End;

function MyNick(buff:DWord;bufflen:DWord):BOOL;stdcall;

BOOL __stdcall NickCount(DWORD buff, DWORD bufflen)

This function returns bot's nick name. It depends on IRC net confirmed name.

Delphi example

Var
MyNick:function (buff:DWord;bufflen:DWord):DWORD;stdcall;
p:Pointer;
s:String;
Begin
MyNick:=GetProcAddress(GetModuleHandle('ircAserv.exe'),'MyNick');
If @MyNick=nil then ; //processerror,exit;
...
p:=HeapAlloc(HH,p,30); // HH heap handle, from Init();
If MyNick(DWord(p),30)=False then ; //processerror,exit
SetString(s,p,30);
...
End;

function NickCount(chqnnel:DWord;cLen:DWord):BOOL;stdcall;

BOOL __stdcall NickCount(DWORD channel, DWORD cLen)

This function returns the number of nicks on channel.

Delphi example

Var
NickCount:function (channel:DWord;cLen:DWord):DWORD;stdcall;
p:Pointer;
s:String;
Begin
NickCount:=GetProcAddress(GetModuleHandle('ircAserv.exe'),'NickCount');
If @NickCount=nil then ; //processerror,exit;
...
s:='#channel';
x:=NickCount(Integer(s),Length(s));
...
End;

Notes

  • All function names are case sensitive !
  • Be careful useing these functions. Do not pass bad arguments. They can affect service stability.
  • If you need some additional functions e-mail us.


General properties

You have to recognize yourself every time you connect to the IRC net. These properties can be customized by user and are described in general properties.

  • Enter nick, user id, and a full name
  • Select quit style, enter quit message
  • Select logging properties.


Nick, User ID, Full name, Perform

  1. Open ircA service manager.
  2. In the console tree click General.
  3. Select any item in the right panel.
  4. Click Action, and then click Properties.
  5. Enter nick, user id. Press OK.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.
  • If you leave user id field empty, it will be replaced by guest user by default.
  • Full name is not a required field.
  • Fill Perform field with commands, that need to be processed after connection. Each command must be writen in a separate line.

Nick

You can choose any nick you want but there are some general rules. Nick can contain only these symbols: A-Z, a-z, 0-9, ";", "[", "]", "\", "`", "_", "^", "{", "|", "}". If else, ircA service generates and uses an unreadable nick.

If the nick is used by another user, ircA service generates and uses an unreadable nick and trys to recover the original nick every 15 s.

In every case when the nick is lost, ircA service trys to recover the original nick every 15 s.

You can change bot nick any time you want. Just enter new nick and press Apply. Perform commands will be processed only if the nick has been changed.

User ID

User ID also contains these symbols: A-Z, a-z, 0-9, ";", "[", "]", "\", "`", "_", "^", "{", "|", "}". Otherwise ircA service doesn't connect to IRC server.

To change User ID you must enter new User ID and restart ircA service.

Full name

Your full name. Here you can enter anything you want. To change it, enter new and restart ircA service.

Perform

Perform is a set of commands, which can be native IRC client protocol (2812) commands or you can use ircA service basic commands. These commands will be processed only if you get the original nick while entering IRC. In other cases, when ircA service generates an unreadable nick, perform commands are not processed.


Quit

  1. Open ircA service manager.
  2. In the console tree click General.
  3. Select any item in the right panel.
  4. Click Action, and then click Properties.
  5. Select quit style, enter quit message. Press OK.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.
  • Quit message is not a required field.

Quit

Quit describes how ircA service must leave IRC net. Just quit - ircA service quits from IRC net with quit message. Leave all channels and quit - at first ircA service leaves every channel with it's own part message. Then quits from IRC net with quit message.


Log

  1. Open ircA service manager.
  2. In the console tree click General.
  3. Select any item in right panel.
  4. Click Action, and then click Properties.
  5. Click on Log page. Set log properties. Press OK.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.
  • Logging to database requires database.

Log

Logging is very important. Some plugins use logs. The information saved by logging gives an opportunity to overview and analyze this information later. That's why we recommend to use logging.

You can write logs to files or to database. A database ir a powerful tool to store and manage data. If you have enabled logging, we strongly recommend you to make sure, that logs are saved to the database. You should choose how to log conserning the fact, that some plugins use logs from database.

Logging to file

You have to set how often files will be created and in which directory they will be stored. ircA service will create the necessary directories if they don't exist. Directory names are formated according to present date - yyyymmdd. File names reflect channel anmes or nicks.

Logging to database

First you need prepare database for ircA service. How to do that read here. Then you can set to enable ircA service write logs to database.

To enable ircA service to log to database, you should set name of ODBC datasource item from System DSN page. The table where you will write logs usually is called IRCLOGS. Also you must set user name and password for connecting to database. If there is no need to define username and password or they are seted in ODBC datasource item leave these fields empty.

All errors or information notes are writing in Event viewer.


Channels

A channel is the room where IRC users come to talk. Channels can be "invited only", "secret" or "public".

ircA service manager can:

  • define channels for automatical joining
  • join, leave channels while ircA service is running
  • set special channel perform commands


Join, leave channels

  1. Open ircA service manager.
  2. In the console tree click Channels.
  3. Click the channel you want to apply action to.
  4. Click Action, and then click Join or Leave.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.
  • Joining or leaveing channels always take some seconds. You should refresh the list manually (press F5) to view the latest channel states.


Add a new channel, delete

To add a new channel:

  1. Open ircA service manager.
  2. In the console tree click Channels.
  3. Click Action, and then click New channel.
  4. Type a name and press Enter.

To delete a channel:

  1. Open ircA service manager.
  2. In the console tree click Channels.
  3. Click the channel you want to delete.
  4. Click Action, and then click Delete.
  5. If a confirmation message appears, click Yes.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.
  • ircA service automatically joins or leaves the channel depending on action.


Set channel properties

  1. Open ircA service manager.
  2. In the console tree click Channels.
  3. Click the channel, which properties you want to set.
  4. Click Action, and then click Properties.
  5. Enter channel perform, key, part message and press OK.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.
  • Each perform command must be in a new line.

Perform

Perform is a set of commands, executed every time the bot joins a channel. These commands can be native IRC client protocol commands (2812) or you can use ircA service basic commands.

Part message

ircA service leaves a channel with part message if it is defined. You can change it any time you want.

Key

Some channels are protected by keys. ircA service will use this key to join a channel.


Plugins

Plugins extend the functionality of ircA service. They can be used to extend user interface, to control other plugins. They can have options of their own.

With ircA service manager you can:

  • add plugins, delete
  • stop, start, update and disable plugins
  • set plugins options


Add a new, delete plugin

To include new plugin:

  1. Open ircA service manager.
  2. In the console tree click Plugins.
  3. Click Action, and then click New plugin ....
  4. Select plugin and press Ok.

To delete plugin:

  1. Open ircA service manager.
  2. In the console tree click Plugins.
  3. Click the plugin you want to delete.
  4. Click Action, and then click Delete.
  5. If a confirmation message appears, click Yes.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.


Start, stop, update, disable plugins

  1. Open ircA service manager.
  2. In the console tree click Plugins.
  3. Click the plugin you want to modify.
  4. Click Action, then:
    • to stop plugin, select Stop.
    • to start plugin, select Start.
    • to disable plugin, select Disable.
    • to enable plugin, select Enable.

To update a plugin first you must stop it. Then install new version (or change dll manually) and start the plugin.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.
  • While plugin is starting up, you can't update it.
  • A disabled plugin still exists, but it will not load in future.


Configure plugin

  1. Open ircA service manager.
  2. In the console tree click Plugins.
  3. Click the plugin you want to configure.
  4. Click Action, and then click Properties.
  5. Press Options button.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.
  • Some plugins may not have options, then Options button will be disabled.


Servers

Every IRC client, bot or user, has to be connected to IRC net. IRC net contains lots of compatible servers. There are many IRC nets in the world. In the IRC net server plays a role of the host between a client and another IRC user. Before using IRC client you have to describe IRC servers. If you do not know any, try to find them using this link http://www.mirc.com/servers.html.


Add a new IRC server, delete

To add a new server:

  1. Open ircA service manager.
  2. In the console tree click Servers.
  3. Click Action, and then click New IRC server ....
  4. Type a name and press Enter.
  5. Click Action, and then click Properties.
  6. Fill the form and press OK.

To delete server:

  1. Open ircA service manager.
  2. In the console tree click Servers.
  3. Click the server you want to delete.
  4. Click Action, and then click Delete.
  5. If a confirmation message appears, click Yes.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.


Set default IRC server

Default IRC server - first server for connection to IRC. If ircA service can not establish a connection to this server, service trys to connect to another IRC server if Try next server general option is set.

To set default server:

  1. Open ircA service manager.
  2. In the console tree click Servers.
  3. Click the server you want to set.
  4. Click Action, and then click Set default.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.


IRC server properties

Each IRC server has its own properties such as IP, port, password and etc. To set these properties:

  1. Open ircA service manager.
  2. In the console tree click Servers.
  3. Click the server, which properties you want to set.
  4. Click Action, and then click Properties.
  5. Fill the form. Minimum requirements - name, IP (host name), port (usually 6667 or 6666).
  6. Press OK.

Notes:

  • To open ircA service console, click Start, point to Programs, then ircA, and click ircA service manager.
  • If your server needs a password for connecting, enter password in server properties form.
  • Type and description are only for personal information and are not required to be filled.


The tool that you requested is not available.

To access the tool, try the following:

Configure your computer.

To have access to certain administrative tools, you must be using either a computer running Windows 2000 Server that is configured to be a domain controller, or a client or server computer running Windows 2000 that has been added to a domain and has the Windows 2000 Administration Tools installed.

For more information about configuring a domain controller and installing the Windows 2000 Administration Tools, see Windows 2000 Help. (To open Help, click Start, and then click Help.)

Install the necessary hardware.

Some programs are installed automatically when you install the hardware associated with them. For example, when you install a fax device, Windows 2000 installs Fax. To install new hardware in Windows 2000 click Start, point to Settings, click Control Panel, and then double-click Add/Remove Hardware.

Install the tool.

The tool might not be installed on your computer because:

  • It is a Windows 2000 optional component. To install optional components, click Start, point to Settings, click Control Panel, and then double-click Add/Remove Programs.
  • If your computer is on a network, your system administrator may have removed this program or set a policy that prevents you from starting it.
  • You have installed the Windows 2000 Administration Tools and this tool is one of the optional components that you have not yet added.

Contact your system administrator.

If your computer is on a network, your system administrator may have removed the tool.


Preparing database for ircA service

How to prepare database for ircA service

Database is powerful tool to store and manage data. ircA service takes advantage of these database features. You can use any database that support SQL and can connect through ODBC.

First find and install any database. Make sure that you have installed ODBC drivers for this database.

Then create a database and a log table. Read database manual about creating database. For creating table we have prepared separate SQL sentences for mostly used databases. You can choose from the list given below. If your database is not on the list try to adapt one from the list. Most databases support SQL standart.

Copy SQL command. Paste to console. Translate the SQL sentence. Some database don't have console, so read the database manual about translating SQL sentences.

You can find already prepared databases on www.dw-soft.com.

After that open ODBC sources in Administrative tools and create System DSN entry. Read your database ODBC drivers manual for more information how to do that. Set properties for connecting to database in datasource item. Test datasource item and make sure that it connects to database.

You should set the name you give to datasource item inircA service log properties. The name of a table in presented SQL sentences is IRCLOGS. But you can change it yourself.

That's all you had to do. If you didn't manage to prepare the database - we can do it for you. e-mail us.

Database

My SQL

Interbase 6.0 or higher

Sybase 6.0 or higher

SQL server 2000


Syntax

Command | Native IRC client protocol command | Description
>(nick|channel) text | PRIVMSG [nick|channel] :text | Sends text to nick (to priavte) or channel (public).
~nick text | NOTICE nick :text | Notices nick with text.
/j channel[,channel_list] [key[,key1]] | JOIN #channel[,#channel_list] [key[,key]] | Joins to channel or channels with specified keys.
/p channel[,channel_list] [part_msg] | PART #channel[,channel_list] [:part_msg] | Leaves channel or channels with part message.
/t channel (:|topic) | TOPIC #channel (:|:topic) | Sets channel topic. Only ":" - removes topic.
/k channel nick [kick_msg] | KICK #channel nick [:kick_msg] | Kicks nick or nicks from channel.
/i nick channel | INVITE nick channel | Invites nick to channel.
/b channel (type nick)|template | MODE +b #channel (type nick)|template | Sets ban in channel by given nick or address.
/o(a| channel) nick | MODE +o all_channels|#channel nick | Sets +o in channel (if a spefied, then in all channels) on nick.
/do(a| channel) nick | MODE -o all_channels|#channel nick | Sets -o in channel (if a spefied, then in all channels) on nick.
/v(a| channel) nick | MODE +v all_channels|#channel nick | Sets +v in channel (if a spefied, then in all channels) on nick.
/dv(a| channel) nick | MODE -v all_channels|#channel nick | Sets -v in channel (if a spefied, then in all channels) on nick.
/IRC_COMMAND | IRC_COMMAND | Any native IRC client protocol (rfa2812) command can be with parameters.